package org.easy.excel.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.easy.excel.support.annotations.ExcelFormat;
import org.easy.excel.support.annotations.ExportLabel;
import org.easy.excel.support.annotations.ExportTopLabel;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 预期收益型产品交易数据
 *
 * @author 李坤
 * @date 2022/11/11 16:58
 */
@Data
@ExportTopLabel(value = "预期收益型产品交易数据", fileName = "预期收益型产品交易数据", appendSequence = true, highly = 2)
public class ExpectDeal implements Serializable {

    @ExportLabel(titles = "ID", sequence = 0)
    @ApiModelProperty(name = "id", value = "64位UUID")
    private String id;

    @ExportLabel(titles = "交易编号", sequence = 1)
    @ApiModelProperty(name = "dealNo", value = "交易编号")
    private String dealNo;

    @ExcelFormat
    @ExportLabel(titles = "申请日期", sequence = 2)
    @ApiModelProperty(name = "reqDate", value = "申请日期")
    private Date reqDate;

    @ExportLabel(titles = "交易方向", sequence = 3)
    @ApiModelProperty(name = "direction", value = "交易方向")
    private String direction;

    @ExportLabel(titles = "产品内码", sequence = 4)
    @ApiModelProperty(name = "prodNo", value = "产品内码")
    private String prodNo;

    @ExportLabel(titles = "投资类型", sequence = 5)
    @ApiModelProperty(name = "tradeType", value = "投资类型")
    private String tradeType;

    @ExportLabel(titles = "对手方", sequence = 6)
    @ApiModelProperty(name = "cpNo", value = "对手方")
    private String cpNo;

    @ExcelFormat
    @ExportLabel(titles = "交易起息日", sequence = 7)
    @ApiModelProperty(name = "valueDate", value = "交易起息日")
    private Date valueDate;

    @ExcelFormat
    @ExportLabel(titles = "交易到期日", sequence = 8)
    @ApiModelProperty(name = "maturityDate", value = "交易到期日")
    private Date maturityDate;

    @ExportLabel(titles = "币种", sequence = 9)
    @ApiModelProperty(name = "currency", value = "币种")
    private String currency;

    @ExportLabel(titles = "重组交易编号", sequence = 10)
    @ApiModelProperty(name = "originalDealNo", value = "重组交易编号")
    private String originalDealNo;

    @ExcelFormat
    @ExportLabel(titles = "交易日期", sequence = 11)
    @ApiModelProperty(name = "dealDate", value = "交易日期")
    private Date dealDate;

    @ExcelFormat
    @ExportLabel(titles = "交易金额", sequence = 12, aggregated = true)
    @ApiModelProperty(name = "dealAmt", value = "交易金额")
    private BigDecimal dealAmt;

    @ExcelFormat(decimal = 4, decimalUnit = "0.01")
    @ExportLabel(titles = "利率", sequence = 13)
    @ApiModelProperty(name = "rate", value = "利率")
    private BigDecimal rate;

    @ExcelFormat
    @ExportLabel(titles = "应计利息", sequence = 14, aggregated = true)
    @ApiModelProperty(name = "accruedIntAmt", value = "应计利息")
    private BigDecimal accruedIntAmt;

    @ExcelFormat
    @ExportLabel(titles = "交易费用", sequence = 15, aggregated = true)
    @ApiModelProperty(name = "fee", value = "交易费用")
    private BigDecimal fee;

    @ExcelFormat
    @ExportLabel(titles = "结算金额", sequence = 16, aggregated = true)
    @ApiModelProperty(name = "settleAmt", value = "结算金额")
    private BigDecimal settleAmt;

    @ExportLabel(titles = "贷后管理人", sequence = 17)
    @ApiModelProperty(name = "manageNo", value = "贷后管理人")
    private String manageNo;

    @ExcelFormat
    @ExportLabel(titles = "券面总额", sequence = 18, aggregated = true)
    @ApiModelProperty(name = "nominalAmt", value = "券面总额")
    private BigDecimal nominalAmt;

    @ExportLabel(titles = "债券代码", sequence = 19)
    @ApiModelProperty(name = "bondCode", value = "债券代码")
    private String bondCode;

    @ExportLabel(titles = "债券名称", sequence = 20)
    @ApiModelProperty(name = "bondName", value = "债券名称")
    private String bondName;

    @ExportLabel(titles = "发行人", sequence = 21)
    @ApiModelProperty(name = "issuerNo", value = "发行人NO")
    private String issuerNo;

    @ExcelFormat
    @ExportLabel(titles = "净价", sequence = 22)
    @ApiModelProperty(name = "netPrice", value = "净价")
    private BigDecimal netPrice;

    @ExportLabel(titles = "金融资产分类", sequence = 23)
    @ApiModelProperty(name = "investType", value = "金融资产分类")
    private String investType;

    @ExportLabel(titles = "本方-账户类型", sequence = 24)
    @ApiModelProperty(name = "opAccType", value = "本方-账户类型")
    private String opAccType;

    @ExportLabel(titles = "本方-资金账号", sequence = 25)
    @ApiModelProperty(name = "opAcc", value = "本方-资金账号")
    private String opAcc;

    @ExportLabel(titles = "本方-资金账户户名", sequence = 26)
    @ApiModelProperty(name = "opAccName", value = "本方-资金账户户名")
    private String opAccName;

    @ExportLabel(titles = "本方-资金开户行", sequence = 27)
    @ApiModelProperty(name = "opBank", value = "本方-资金开户行")
    private String opBank;

    @ExportLabel(titles = "本方-支付系统行号", sequence = 28)
    @ApiModelProperty(name = "opBankCode", value = "本方-支付系统行号")
    private String opBankCode;

    @ExportLabel(titles = "对方-账户类型", sequence = 29)
    @ApiModelProperty(name = "cpAccType", value = "对方-账户类型")
    private String cpAccType;

    @ExportLabel(titles = "对方-资金账号", sequence = 30)
    @ApiModelProperty(name = "cpAcc", value = "对方-资金账号")
    private String cpAcc;

    @ExportLabel(titles = "对方-资金账户户名", sequence = 31)
    @ApiModelProperty(name = "cpAccName", value = "对方-资金账户户名")
    private String cpAccName;

    @ExportLabel(titles = "对方-资金开户行", sequence = 32)
    @ApiModelProperty(name = "cpBank", value = "对方-资金开户行")
    private String cpBank;

    @ExportLabel(titles = "对方-支付系统行号", sequence = 33)
    @ApiModelProperty(name = "cpBankCode", value = "对方-支付系统行号")
    private String cpBankCode;

    @ExportLabel(titles = "备注", sequence = 34)
    @ApiModelProperty(name = "remark", value = "备注")
    private String remark;

    @ExportLabel(titles = "记账摘要", sequence = 35)
    @ApiModelProperty(name = "kaRemark", value = "记账摘要")
    private String kaRemark;

    @ExportLabel(titles = "划款附言", sequence = 36)
    @ApiModelProperty(name = "kaPostscript", value = "划款附言")
    private String kaPostscript;

    @ExportLabel(titles = "记账经办人", sequence = 37)
    @ApiModelProperty(name = "kaCreater", value = "记账经办人")
    private String kaCreater;

    @ExportLabel(titles = "记账复核人", sequence = 38)
    @ApiModelProperty(name = "kaReviewer", value = "记账复核人")
    private String kaReviewer;

    @ExcelFormat(formatPattern = "yyyy-MM-dd HH:mm:SS")
    @ExportLabel(titles = "创建时间", sequence = 39)
    @ApiModelProperty(name = "tmCreatetime", value = "创建时间")
    private Date tmCreatetime;

    @ExportLabel(titles = "创建人", sequence = 40)
    @ApiModelProperty(name = "tmCreater", value = "创建人ID")
    private String tmCreater;

    @ExcelFormat(formatPattern = "yyyy-MM-dd HH:mm:SS")
    @ExportLabel(titles = "修改时间", sequence = 41)
    @ApiModelProperty(name = "tmUpdatetime", value = "修改时间")
    private Date tmUpdatetime;

    @ExportLabel(titles = "修改人", sequence = 42)
    @ApiModelProperty(name = "tmUpdater", value = "修改人")
    private String tmUpdater;

    @ExportLabel(titles = "所属机构", sequence = 43)
    @ApiModelProperty(name = "tmOrgid", value = "所属机构ID")
    private String tmOrgid;

    @ExportLabel(titles = "有效标志", sequence = 44)
    @ApiModelProperty(name = "tmEffectflag", value = "有效标志   'E' - 已完结 'A' - 未完结  'D' - 无效 ‘T’-草稿")
    private String tmEffectflag;

}
